home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 1 (Walnut Creek)
/
Aminet - June 1993 [Walnut Creek].iso
/
aminet
/
os20
/
util
/
sm_1_13c.lzh
/
SM
/
SM.anl
< prev
next >
Wrap
Text File
|
1992-09-16
|
25KB
|
684 lines
ScreenManager by Bernhard Möllemann
all rights reserved
Hilfsprogramm zum Verwalten von Public-Screens
Version V1.13c
ScreenManager (SM) ist ein kleines CLI-Programm, um Public-Screens zu
öffnen, schließen oder noch andere Dinge zu tun. Die Screens können
mit frei wählbarer Auflösung und Farben geöffnet werden. Sogar die
DrawInfo, die bestimmt, welche Farbe für Glanzeffekte verwendet wird,
ist wählbar.
SM kann aber auch bestimmte Screens zum System-Default-Screen machen
und die anderen Public-Screen-Modes ändern. Außerdem ist es möglich,
sich eine Liste aller Screens im System ausgeben zu lassen oder sich über
Auflösung und andere Eigenschaften eines Screens zu informieren.
Diese Anleitung gliedert sich in 6 Teile:
Copyright
CLI
Beispiele
Workbench
HotKeys
Schluß
Das Copyright _muß_ jeder lesen! Wer schnell etwas ausprobieren
will, sollte danach einfach die Beispiele durchprobieren. Die
ernsthaften Anwender kommen allerdings nicht um die Lektüre der
CLI-Optionen herum.
Copyright
---------
Das Programmpaket ScreenManager ist Copyright 1992 Bernhard Möllemann.
Alle Rechte vorbehalten.
Die Benutzung des Programms ScreenManager geschieht auf eigenes
Risiko. Falls durch die Benutzung des Programms irgendein Schaden
entsteht, kann der Autor dafür nicht haftbar gemacht werden.
Dieses Programm ist frei kopierbar, solange folgende Regeln eingehalten
werden:
· Alle Dateien müssen kopiert werden. Das sind:
ScreenManager
ScreenManager.info
SM.doc
SM.anl
SM.ver
SM.doc.info
SM.anl.info
SM.ver.info
· Alle obengennanten Dateien müssen sich in einem einzigen
Verzeichnis befinden, in dem nichts anderes steht.
· Keine der Dateien darf verändert werden. Sie dürfen nur dann als
Archiv verbreitet werden, wenn sie sich mit einer frei kopierbaren
Amiga-Version eines der folgenden Programme entpacken lassen:
Zoo
Arc
LhArc
LhA
Zip
uudecode
compress
tar
ARJ
· Es darf kein Gewinn mit dem Verkauf, Vertrieb oder Kopieren des
Programms erwirtschaftet werden.
· Es darf ausschließlich auf folgenden Public-Domain Disketten
verbreitet werden:
AmigaLibDisks von Fred Fish
AUGS (Amiga User Group Switzerland)
AmigaJUICE
SAUG (Saarbrückener Amiga User Group)
Time
· Es darf nicht ohne meine Einwilligung auf CD-ROMs verbreitet
werden, was auch AmigaLibDisks auf CD-ROM einschließt.
Alle, die eine der oben ausgeschlossenen Formen der Verbreitung
wünschen, müssen eine schriftliche Erlaubnis des Autors haben.
Die gibt es vielleicht bei:
Bernhard Möllemann
Luisenstraße 17
D-7500 Karlsruhe 1
CLI
---
Wie gesagt, läßt sich mit dem ScreenManager das "Screen-System" des
Amiga kontrollieren. Es ist nicht möglich, das mit der Maus zu
machen. Vielleicht programmiere ich es noch, wenn genügend Leute
Interesse daran haben. Ich _brauche_ es eigentlich nicht, aber je
mehr Anfragen bei mir eintrudeln, desto höher wird der Anreiz.
Da es Public-Screens erst ab OS2.0 gibt, ist dieses natürlich
Voraussetzung. Der ScreenManager sollte jedoch auch mit höheren
Betriebssystemversionen laufen.
Bliebe eigentlich nur noch zu sagen, daß der ScreenManager auch
resi(dent) gemacht werden kann!
Es gibt sechs verschiedene Aufgaben, die der ScreenManager lösen kann:
Öffnen von Screens
Schließen von Screens
Informationen über Screen oder Graphikmodus liefern
Liste der Graphikmodi ausgeben
Schon geöffnete Screens manipulieren
Globale Einstellungen ändern
Das geschieht über jeweils einen Aufruf mit einer oder mehrerer der
folgenden Optionen (bitte nicht erschrecken!):
NAME: Name des Screens
OPEN: einen neuen Screen öffnen
CLOSE: einen bestimmten Screen schließen
INFO: gibt Infos über einen Screen aus
LIST: listet alle Screens auf
EXPERT/FORCE: gibt mehr Infos aus und schaltet einige Abfragen ab
TITLE: Screentitel bei OPEN
PLANES: Anzahl der Bitplanes bei OPEN
MODE: Auflösung bei OPEN. Ein paar Buchstaben
DISPID: alternativ zu MODE ist dies die DisplayID eines neuen Screens
SIZE/POS: Größe des Screens bei OPEN und Position beim Bewegen
DISPCLIP: Größe des sichtbaren Screenbereichs bei OPEN
COLORS: Farben bei OPEN. 3-stellige Hexadezimalzahlen
PENS: Farbnummern für DrawInfo
FONT: Font, der bei OPEN vom Screen benutzt werden soll
FONTSIZE: Größe des obigen Fonts
CLOSEGAD: versieht Screen mit einem CloseGadget
AUTOCLOSE: schließt Screen automatisch beim Schließen des letzten
Fensters
CX_TOFRONT: HotKey, der den Screen nach vorne bringt
CX_DEFAULT: HotKey, der den Screen zum System-Default-Screen macht
CX_PRIORITY: Priorität, auf der die HotKeys eingeklinkt werden
TOFRONT: Screen nach vorne bringen
TOBACK: Screen nach hinten bringen
SHANGHAI: Shanghai-Modus einschalten
NOSHANGHAI: Shanghai-Modus ausschalten
POPPUB: PopPub-Modus einschalten
NOPOPPUB: PopPub-Modus ausschalten
DEFAULT: Screen zum System-Default-Screen machen
Das ist ziemlich viel und kompliziert dazu. Aber im Prinzip lassen
sich ja nur sechs verschiedene Sachen damit machen, der Rest sind
Parameter dafür.
1.1) OPEN
Öffnet einen neuen Screen. Wenn der Screen schon existiert, bekommt
man eine entsprechende Fehlermeldung serviert. Folgende Argumente
können bei OPEN noch angegeben werden:
1.1.1) NAME: Der Name des Screens.
Unter diesem Namen wird der Screen als Public-Screen angemeldet. Ist
kein TITLE angegeben, wird er auch als Titel verwendet. Der NAME muß
angegeben werden.
1.1.2) TITLE: Der Screentitel.
Das ist der Text, der in der Titelzeile des Screens zu sehen ist.
Sichtbar ist er allerdings nur dann, wenn das aktive Fenster keinen
eigenen Titel setzt.
1.1.3) PLANES: Anzahl der Bitplanes.
Sie legt hauptsächlich fest, wieviele verschiedene Farben dargestellt
werden können - es sind 2^PLANES. Für jeden Graphikmodus gelten
bestimmte Grenzen für PLANES.
Werden sie überschritten, gibt es eine entsprechende Fehlermeldung.
Voreinstellung ist 2.
1.1.4) MODE: legt den Grafikmodus fest.
Hier gibt man analog zu den Bezeichnungen in Prefs/ScreenMode den
Namen der Auflösung an. Dabei ist es nicht nötig, sich an die Groß-
Kleinschreibung zu halten.
Wer Modi, die keinen Namen haben, verwenden möchte, gibt einen String
an, in dem jeder Buchstabe für eine bestimmte Eigenschaft steht. Wie
diese kombiniert werden können, und welche überhaupt verfügbar sind,
hängt von Graphikhardware und Monitor ab. Bei ungültigen Eingaben
wird eine entsprechende Fehlermeldung ausgegeben.
Die einzelnen Buchstaben stehen für:
H: Hires (Default: Lores)
L: Lace (Default: Kein Interlace)
S: Superhires
E: Extrahalfbright
V: VGA
P: Productivity
A: A2024 mit 10Hz
F: A2024 mit 15Hz
X: HAM
Der gewünschte Modus wird einfach durch Hintereinanderschreiben der
einzelnen Buchstaben angegeben - z.B. MODE=SL für SuperHires-Lace
Der Default-Mode kann leider nicht vom Workbench-Screen kopiert
werden, da das ein unbeabsichtigtes Öffnen des WB-Screens zur Folge
haben kann.
1.1.5) DISPID: DisplayID des zu öffnenden Screens.
Sie kann alternativ zu MODE angegeben werden. Es darf allerdings nur
MODE oder DISPID aufgeführt sein, nicht beides.
Gültige Werte für eine DisplayID sind in graphics/displayinfo.h zu
finden, vorausgesetzt, der entsprechende Monitor steht zur Verfügung.
(Die Liste gibt auch "ScreenManager LIST DISPID" aus.)
Da der ScreenManager keine DualPlayfield-Screens unterstützt,
werden entsprechene DisplayIDs nicht akzeptiert.
Die DISPID muß hexadezimal angegeben werden. Es dürfen $ oder 0x
davor stehen.
1.1.6) SIZE: Größe des Screens in Pixeln.
Voreingestellt ist Overscan-Text. Die Größe wird in dem Format
LEFT,TOP,WIDTH,HEIGHT angegeben.
Da WIDTH und HEIGHT wohl öfter gebraucht werden als LEFT und TOP,
gelten, wenn nur zwei Werte angegeben sind, diese als WIDTH und
HEIGHT. Zur besseren Lesbarkeit können sie auch als WIDTHxHEIGHT
statt WIDTH,HEIGHT angegeben werden.
Um die Overscan-Größen bequemer handhaben zu können, kann man auch
die Overscan-Bereiche, die das System anbietet, namentlich angeben.
Erlaubte Overscan-Namen sind:
OSCAN_NORM Hardware-Default. Was C= offiziell als Auflösung angibt.
OSCAN_TXT Text-Overscan, wird in Prefs eingestellt (Text auch in
Ecken noch lesbar). OSCAN_TEXT ist auch erlaubt.
OSCAN_STD Standard-Overscan, wird in Prefs eingestellt (Bild füllt
gerade Monitor aus). OSCAN_STANDARD ist auch erlaubt.
OSCAN_MAX Maximaler Overscan, wird durch Hardware festgelegt
Die tippfaulen Leute können den _ oder das OSCAN auch weglassen.
Um von diesen Werten abweichende Größen zu erhalten, schreibt man
hinter den Overscan - mit einem Doppelpunkt getrennt - eine
Größenangabe. In diesem Fall wird der entsprechende Overscan benutzt
und die Größenangaben werden auf die Overscan-Größe _addiert_.
Also sieht eine fertige SIZE-Angabe z.B. so aus:
SIZE=OSCAN_STD:-10,-10,+20,+20
Das ergibt einen Screen, bei dem die Größe den Standard-Overscan in
jeder Richtung um 10 Pixel überragt.
1.1.7) DISPCLIP: Größe des sichtbaren Bereichs des Screens.
Hier gilt das gleiche Format wie für SIZE.
1.1.8) COLORS: legt die Farben als RGB-Informationen fest.
Sie werden als 3-stellige Hexadezimalzahlen eingegeben und durch
Komma getrennt. Dabei darf kein führendes $ oder 0x auftauchen.
1.1.9) PENS: Farbstifte, die für 3D-Darstellung benutzt werden.
Dabei ist jeder Stift für bestimmte Effekte vorgesehen. Eine nähere
Erläuterung ist in dem Include-File intuition/screens.h bei der
Beschreibung der DrawInfo.Pens zu finden.
Jedes Zeichen wird als (hexadezimale) Farbnummer der bei COLORS
angegebenen Farben interpretiert. Daraus folgt, daß für die Stifte
nur die ersten 16 Farben zur Verfügung stehen. Wer _wirklich_ mehr
braucht, kann mir ja schreiben.
Man muß nicht alle Stifte angeben, aber man muß alle Stifte, die
_vor_ einem gewünschten Stift liegen, spezifizieren.
Für die Farbstifte gilt:
Stift Bezeichnung wird verwendet für ...
1 DETAILPEN Schrift (1.3-kompatibel)
2 BLOCKPEN Fülloperationen (1.3-kompatibel)
3 TEXTPEN normale Beschriftungen
4 SHINEPEN helle Kanten an 3D-Objekten
5 SHADOWPEN dunkle Kanten an 3D-Objekten
6 FILLPEN Hintergrund aktivierter Elemente \ z.B. aktiver
7 FILLTEXTPEN Text auf aktivierten Elementen / Fensterrahmen
8 BACKGROUNDPEN Hintergrund - muß auf 0 gesetzt werden
9 HIGHLIGHTTEXTPEN hervorgehobene Beschriftungen
Das klingt ziemlich kompliziert und das Ergebnis ist auch nicht immer
ganz vorhersehbar. Am besten fängt man mit einem der unten aufgeführten
Beispiele an und modifiziert es, dann bekommt man schnell ein Gefühl
dafür.
1.1.10) FONT: Font, der dann Default-Font des Screens wird.
Das kann auch ein proportionaler Font sein. Konnte der Font nicht
gefunden werden, wird der Screen trotzdem mit dem Default-Font
des Systems geöffnet! (Dieser Font wird mit dem Voreinstellungsprogramm
"Font" gesetzt.)
Das .font am Ende ist optional. Außerdem kann die gewünschte Größe X
auch mit .X angehängt werden: z.B. FONT=diamond.12
1.1.11) FONTSIZE: Größe des obigen Fonts.
Hier kann so ziemlich alles angegeben werden, da die neue
diskfont.library im Zweifelsfalle einen Font anderer Größe
entsprechend skaliert.
Diese Option gibt hübsche Effekte mit dummen Programmen!
1.1.12) CLOSEGAD: Hängt ein Closegadget an den Screen.
Damit wird ein Schließsymbol (Closegadget) in der linken oberen Ecke
des Screens eingerichtet. Man kann dann einfach per Mausklick den
Screen wie ein Fenster schließen.
1.1.13) AUTOCLOSE: Schließt den Screen automatisch nach Benutzung.
Ist diese Option angegeben, wird der Screen nach dem Verschinden des
letzten Fensters geschlossen.
1.1.14) CX_TOFRONT: HotKey, um Screen nach vorne zu bringen.
Hiermit kann man einen HotKey (keine heiße Taste, sondern eine
Abkürzung) definieren, mit dem der Screen bei Bedarf in den
Vordergrund gebracht werden kann.
Die Definition entspricht dem Standard der commodities.library. Wie
eine solche Tastenkombination beschrieben wird, ist weiter unten
erläutert.
1.1.15) CX_DEFAULT: HotKey, um Screen zum System-Default-Screen zu machen.
Analog zu obigem ist das ein HotKey, mit dem der Screen zum System-
Default-Screen erklärt werden kann. Auch hier gelten die weiter unten
nochmal aufgeführten Definitionen der commodities.library.
1.1.16) CX_PRIORITY: Priorität für obige HotKeys.
Wenn sie nicht angegeben ist, wird ein Default von 0 benutzt.
1.1.17) Weitere Optionen
Zusätzlich kann man noch die Optionen
SHANGHAI, NOSHANGHAI, POPPUB, NOPOPPUB, DEFAULT, TOFRONT oder TOBACK
angeben. Eine nähere Beschreibung folgt noch, da diese auch verwendet
werden können, ohne einen Screen zu öffnen.
1.1.18) FORCE: Schaltet einige Sicherheitsabfragen aus.
In diesem Modus sind die Tests, ob die Hardware des Rechners die
angegebenen Größen für SIZE, DISPCLIP und PLANES überhaupt darstellen
kann, ausgeschaltet. Wenn der Rechner dann Müll anzeigt oder gar
abstürzt, bitte KEINEN Bugreport an C= oder mich!
1.2) CLOSE
Schließt einen vorhandenen Screen.
1.2.1) NAME: Name des Screens.
Die Groß-/Kleinschreibung muß nicht korrekt sein. Sind aber mehrere
Screens da, die passen könnten, wird der erste genommen, der gefunden
wird. Ist der NAME richtig geschrieben, wird _immer_ der
entsprechende Screen genommen.
Wenn man Angelas pattern.library (Fish 625) installiert hat, kann man
sogar ein Pattern angeben - insbesondere wo* für Workbench!
Im Moment gibt es zwei spezielle Namen:
* steht für den Screen, auf dem die Console dieses Prozesses liegt.
. steht für den System-Default-Screen
Diese Konventionen für den Namen gelten überall, außer natürlich bei
OPEN.
1.2.2) FORCE: Schließt auch fremde Screens.
Damit können auch Screens, die weder vom ScreenManager noch von der
Workbench stammen, geschlossen werden.
Allerdings ist dann das Programm, welches sie geöffnet hat, nicht
unbedingt darüber informiert. Wenn es später versucht, ein Fenster auf
diesem Screen zu öffnen, kommt es zum Absturz. Auch kann es sein, daß
zum Screen gehörige Resourcen (z.B. sein Font) nicht freigegeben werden.
1.3) LIST
Gibt eine Liste der Screens oder Auflösungen aus.
1.3.1) <ohne Parameter>: Zeigt die Screenliste an.
Ausgegeben werden Name, Titel, Auflösung und Farben des jeweiligen
Screens.
Dahinter steht <SM>, wenn der Screen vom ScreenManager geöffnet wurde.
Es kann dort auch noch DEFAULT stehen, wenn es der System-Default-Screen
ist, oder PRIVATE, wenn dieser Screen im Moment nicht öffentlich ist.
1.3.2) DISPID: Zeigt sämtliche Auflösungen an.
Es wird eine Liste aller Darstellungsmodi, die dem System bekannt
sind, ausgegeben.
Es stehen, wenn vorhanden, auch der Name und die Verfügbarkeit dabei.
1.3.3) MODE: Zeigt Auflösungen an.
Gibt eine Liste der Darstellungsmodi, die dem System namentlich
bekannt sind, aus, und zeigt deren Verfügbarkeit an.
1.4) INFO
Gibt Informationen über einen Screen oder einen Darstellungsmodus aus.
1.4.1) <ohne Parameter>: Druckt die momentan gültigen Public-Screen-Modes
aus.
1.4.2) NAME: Zeigt Eigenschaften dieses Screens.
Es werden z.B. seine Auflösung und Farbanzahl ausgegeben. Auch hier
gelten die bei CLOSE erwähnten Sonderzeichen.
1.4.3) DISPID/MODE: Gibt Infos über den Darstellungsmodus aus.
Es sind z.B. maximale Farbanzahl und minimale/maximale Größe eines
solchen Screens dabei.
1.4.4) EXPERT: Gibt etwas mehr Infos aus.
Diese Option kann bei allen Parametern von INFO zusätzlich angegeben
werden. Es werden dann die Strukturen NameInfo, DisplayInfo,
DimensionInfo und MonitorInfo angezeigt.
1.5) Geöffnete Screens manipulieren.
Folgende Optionen modifizieren die Modes eines vorhandenen
Public-Screens. Dafür muß natürlich auch dessen Name angegeben sein.
Auch hier gelten wieder die Abkürzungen, die bei CLOSE erläutert
wurden.
All diese Optionen können natürlich auch beim Öffnen eines neuen
Screens angegeben werden.
1.5.1) COLORS: Nachträgliches Ändern der Farben.
Damit kann die Farbpalette eines Screens im nachhinein geändert
werden. Die Farben werden als 3-stellige Hexadezimalzahlen
eingegeben und durch Komma getrennt.
Achtung! Werden die Farben des Workbench-Screens geändert, kriegt der
IPrefs-Demon das nicht mit - genausowenig wie Intuition selber.
Es kann dann zu "Effekten" bei Benutzung von Prefs/Palette kommen.
1.5.2) POS: Setzt die Screenposition neu.
Damit kann die Position eines Screens nachträglich geändert werden.
Das Format ist "POS=x,y".
1.5.3) PLANES: Setzt die Anzahl der Planes des Screens neu.
Diese Option wird nur zusammen mit FORCE akzeptiert - sonst wird
lediglich eine Warnung ausgegeben. Sie ermöglicht es, die Anzahl der
Planes des Screens zu erhöhen oder zu reduzieren.
Da nicht bekannt sein kann, ob die Größe der BitMap-Struktur, in der
für jede Plane ein Zeiger stehen muß, für die verlangte Anzahl der
Planes ausreicht, _kann_ es passieren, daß bei Erhöhung der Planes
fremder Speicher überschrieben wird!!! Also bitte _mehr_ als
vorsichtig sein.
1.5.4) DEFAULT: Screen zum System-Default-Screen machen.
1.5.5) TOFRONT: Screen nach vorne bringen.
1.5.6) TOBACK: Screen nach hinten bringen.
1.5.7) CX_TOFRONT: Ändert den HotKey zum Nach-vorne-bringen des Screens.
Mit CX_TOFRONT="" wird er abgeschaltet.
1.5.8) CX_DEFAULT: Ändert den HotKey, der den Screen zum System-Default-
Screen macht. Auch er läßt sich mit dem Leerstring ausschalten.
1.6) Globale Einstellungen Ändern.
Diese Optionen beeinflussen globale Einstellungen und können auch
ohne Screen angewandt werden:
1.6.1) SHANGHAI: Shanghai-Mode einschalten.
Im Shanghai-Modus gehen auch die Fenster, die früher auf der Workbench
aufgingen, auf dem System-Default-Screen auf.
Damit kann man vor allem alte Programme, die noch nichts über das
Konzept des Default-Screens wissen, von der Workbench fernhalten.
1.6.2) NOSHANGHAI: Shanghai-Mode ausschalten.
1.6.3) POPPUB: PopPub-Mode einschalten.
In diesem Modus kommt der Screen nach vorne, sowie ein Fenster darauf
geöffnet wird.
1.6.4) NOPOPPUB: PopPub-Mode ausschalten.
Beispiele
---------
Hier noch ein paar Beispiele:
ScreenManager OPEN NobelScreen MODE=H PLANES=3 PENS=121657404
COLORS=960,DDF,03C,FF1,DC0,730,F83,C30 DEFAULT SHANGHAI POPPUB CLOSEGAD
CX_PRI=10 CX_TOFRONT="LCOMMAND s" CX_DEFAULT="LCOMMAND SHIFT s"
ScreenManager OPEN BlueScreen DISPID=$00029004 PLANES=3 PENS=171657404
SIZE=OSCAN_TEXT:+100,+100 DISPCLIP=OSCAN_TEXT
COLORS=13B,AAC,D30,FFF,CC2,015,7AF,13F FONT=courier.13 DEFAULT TOBACK
ScreenManager OPEN NessyScreen MODE=PAL:Hires PLANES=2 SIZE=640×256
PENS=021123103 COLORS=69A,FEE,002,F7C DEFAULT AUTOCLOSE CLOSEGAD POPUP
ScreenManager OPEN SimpleWB MODE=H DEFAULT SHANGHAI POPPUB
ScreenManager LIST
ScreenManager LIST DISPID
ScreenManager INFO DISPID=$00031004 EXPERT
ScreenManager CLOSE BlueScreen
Diese Kommandos müssen in jeweils _einer_ Zeile eingegeben werden.
Um auf einem solchen Screen Fenster öffnen zu können, muß man natürlich
ein Programm haben, das sich nicht krampfhaft an die Workbench klammert,
sondern seine Fenster auf dem System-Default-Screen öffnet. Das tun
zumindest die Voreinstellungseditoren Time und Font sowie CON: (und
fälschlicherweise IconEdit *ärger*).
Ein Console-Window kann aber auch auf einem Screen, der _nicht_
System-Default-Screen ist, aufgehen:
CON:0/15/640/185/MeinFenster/CLOSE/SCREENNobelScreen.
Der Display-Handler der WShell kann das natürlich auch.
Workbench
---------
Damit die Freunde der Workbench nicht ganz leer ausgehen, kann der
ScreenManager auch die Merkmale (ToolTypes) als Argumente
interpretieren.
Die ToolTypes entsprechen den oben aufgeführten Kommandozeilenargumenten.
Es gibt allerdings ein paar Unterschiede:
NOSHANGHAI und NOPOPPUB
gibt es nicht mehr. Sie müssen durch SHANGHAI=FALSE oder POPPUB=0 ersetzt
werden.
Es gibt einen zusätzlichen ToolType WINDOW. Das Argument wird als
Filename genommen, in den die Ausgaben z.B. bei LIST wandern. Als
File gilt natürlich auch eine Fensterbeschreibung wie z.B.
CON:////ScreenManager-Output/CLOSE
Ist WINDOW nicht angegeben, wird kein Fenster geöffnet und eventuelle
Fehler werden über Requester gemeldet.
Die Argumente müssen, auch wenn sie Leerzeichen enthalten, ohne
Anführungszeichen eingegeben werden, da im Gegensatz zur
Kommandozeile ja klar ist, wo das Argument aufhört.
Wurde ein Projekt mit dem ScreenManager als Default-Tool angeklickt,
werden die ToolTypes des ScreenManager als Defaults genommen und dann
von denen des Projekts überschrieben.
So kann man sich beispielsweise für jeden Screen, den man oft benutzt
(bei mir ShellScreen und Workbench), ein Projekt mit NAME=<ScreenName>
anlegen und einen ScreenManager mit dem ToolType DEFAULT.
Klickt man jetzt erst auf das Projekt-Icon und dann zweimal mit
gedrückter Shift-Taste auf den ScreenManager, wird der Screen
<ScreenName> zum System-Default-Screen.
Je nachdem, welches Pärchen ich "doppelklicke", kann ich so den
ShellScreen oder den Workbench-Screen zum System-Default-Screen
machen. Das Gleiche geht z.B. auch mit POS - und fertig ist der
WB-Klick-Baukasten.
HotKeys
-------
Für die, die den dicken Schuber gerade nicht greifbar haben, hier
noch die Sondertasten von Commodities V37. (kein Anspruch auf
Vollständigkeit 8-):
Events:
RawKey, RawMouse, Event, PointerPos,
Timer, NewPrefs, DiskRemoved, DiskInserted
Größtenteils nicht sehr sinnvoll, aber ganz lustig, wenn bei einem
DiskInsert der Screen mit der Shell nach vorne kommt. Außerdem ist
Timer noch ganz interessant, da man sonst keinen Qualifier allein
ansprechen kann. Aber natürlich will ich das nicht empfehlen.
Allerdings bin ich der Meinung, daß sich jeder sein System kaputt-
konfigurieren darf, wie er will - nur beschweren darf er sich dann
nicht.
Qualifier:
LShift, RShift, CapsLock, Control, LAlt, RAlt, LCommand, RCommand,
NumericPad, Repeat, RelativeMouse, Shift, Caps, Alt, UpStroke
Keys:
(MidButton, RButton, LeftButton)
Comma, Space, BackSpace, Tab, Enter, Return, Esc, Del
Up, Down, Right, Left
F1, F2, F3, F4, F5, F6, F7, F8, F9, F10
Help
sowie alle normalen druckbaren Zeichen, die dann für sich selbst stehen
Eine Hotkey-Definition daraus sieht so aus:
[<Qualifier> <Qualifier> ... ] <Event>|<Key>
Da die Qualifier von der auslösenden Taste durch ein Leerzeichen getrennt
werden, muß der ganze Ausdruck in Anführungszeichen gepackt werden. Also
etwa so:
CX_TOFRONT="LCommand s"
CX_DEFAULT="LCommand Shift s" oder CX_DEFAULT="LCommand S"
Sämtliche Bezeichner können sowohl groß als auch klein eingegeben
werden. Um HotKeys mit großen Buchstaben auslösen zu können (wie die
Alternative des zweiten Beispiels), muß dann natürlich noch die
Shift-Taste gedrückt werden (oder die KeyMap ist maximal mystisch...).
Schluß
------
Vielen Dank an Franky (Frank Neumann) für die englische Übersetzung.
Vielen Dank auch an Angela Schmidt für Bug-Reports und Anregungen.
Ich danke auch:
Holger Gzella
Michael (Mick) Hohmann
Martin Horneffer
Georg (Gio) Magschok
und Ralph Babel für sein Guru-Buch.
Bug-Reports, Verbesserungsvorschläge, Glückwünsche, Schokokugeln,
Flames, GUIs und anderes (keine Briefbomben oder Raubkopien) an:
zza@rz.uni-karlsruhe.de
oder
Bernhard Möllemann
Luisenstraße 17
7500 Karlsruhe 1
Germany